@echo off
chcp 65001 >nul

REM Gate服务启动脚本
REM 支持通过JVM参数配置grpc.server.port和server.id

echo 🚪 Gate服务启动脚本
echo ==================================

REM 设置默认参数
set DEFAULT_SERVER_ID=1001
set DEFAULT_GRPC_PORT=14000
set DEFAULT_WEB_PORT=4000

REM 从命令行参数获取配置
set SERVER_ID=%1
set GRPC_PORT=%2
set WEB_PORT=%3

REM 如果没有提供参数，使用默认值
if "%SERVER_ID%"=="" set SERVER_ID=%DEFAULT_SERVER_ID%
if "%GRPC_PORT%"=="" set GRPC_PORT=%DEFAULT_GRPC_PORT%
if "%WEB_PORT%"=="" set WEB_PORT=%DEFAULT_WEB_PORT%

echo 📋 启动配置:
echo   服务器ID: %SERVER_ID%
echo   gRPC端口: %GRPC_PORT%
echo   Web端口: %WEB_PORT%
echo.

REM 验证参数
if %SERVER_ID% LSS 1001 (
    echo ❌ 错误: 服务器ID必须大于等于1001
    pause
    exit /b 1
)

if %SERVER_ID% GTR 1999 (
    echo ❌ 错误: 服务器ID必须小于等于1999
    pause
    exit /b 1
)

if %GRPC_PORT% LSS 14000 (
    echo ❌ 错误: gRPC端口必须大于等于14000
    pause
    exit /b 1
)

if %GRPC_PORT% GTR 14099 (
    echo ❌ 错误: gRPC端口必须小于等于14099
    pause
    exit /b 1
)

if %WEB_PORT% LSS 4000 (
    echo ❌ 错误: Web端口必须大于等于4000
    pause
    exit /b 1
)

if %WEB_PORT% GTR 4099 (
    echo ❌ 错误: Web端口必须小于等于4099
    pause
    exit /b 1
)

echo ✅ 参数验证通过
echo.

REM 切换到gate目录
cd gate

REM 启动服务
echo 🚀 启动Gate服务...
echo 使用命令: mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.id=%SERVER_ID% -Dgrpc.server.port=%GRPC_PORT% -Dserver.port=%WEB_PORT%"
echo.

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.id=%SERVER_ID% -Dgrpc.server.port=%GRPC_PORT% -Dserver.port=%WEB_PORT%"

pause 